// Purpose:	To create a simple way of sharing and manipulating file paths.
// Creator:	Daniel Martin 10/3/2012

#pragma once
#include <iostream>
#include <map>
#include "Engine.h"


namespace Path
{
	const char Root[] = "Root";
	const char Data[] = "Data";
	const char Config[] = "Config";
	const char Models[] = "Models";
	const char Shaders[] = "Shaders";
	const char Materials[] = "Materials";
	const char Sound[] = "Sound";
}




// |---------- CFileSystem ----------|
class CFileSystem
public:
	static std::map<std::string,std::string> Keys;

	CFileSystem(void);
	~CFileSystem(void);


	// Get the root, setup defaults [Read from config file?]
	static void	Setup(char* Root);

	static std::string	AliasGet(std::string Alias); 
	static std::string	AliasAdd(std::string Alias,std::string Path);
	static void	AliasCreate(std::string Alias,std::string Path); // Make a new alias

	//Utility
	static std::string	DirFix(std::string Dir);				// Fix the backslash characters.
	static bool	File_Exists(std::string Alias,std::string FileName);
	static bool	File_Exists(std::string Path);
	static bool	File_Load(std::string Path,std::string &Buffer );

};
